package br.com.virtual.base.service.impl;

import java.util.List;

import javax.ejb.Asynchronous;
import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Stateless;

import br.com.virtual.base.enums.StatusVendaEnum;
import br.com.virtual.base.service.SenderEmail;
import br.com.virtual.base.uteis.MailUtils;
import br.com.virtual.cadastrar.model.Pessoa;
import br.com.virtual.cadastrar.service.PessoaService;

//import br.com.virtual.uteis.MailUtils;

@Stateless
@Local(SenderEmail.class)
public class SenderEmailImpl implements SenderEmail {

	@EJB
	private PessoaService pessoaService;

	@Asynchronous
	public void sendEmailRecuperarSenha(Pessoa pessoa) {
		String to = pessoa.getEmail();

		// E-MAIL HTML
		StringBuilder conteudo = new StringBuilder();
		
		conteudo.append(this.getLogoEmail());
		
		conteudo.append("<h3>");
		conteudo.append("	Olá " + pessoa.getNome() + ".");
		conteudo.append("</h3>");
		
		conteudo.append("<h4>");
		conteudo.append("	Recebemos sua solicitação para alteração de senha de acesso.");
		conteudo.append("</h4>");
		
		conteudo.append("<h4>");
		conteudo.append("	Para alterar sua senha  ");
		conteudo.append("	<a href=\"http://virtual.servidor/autenticar/nova-senha.jsf?id=");
		conteudo.append(		pessoa.getId());
		conteudo.append("		&email=");
		conteudo.append(		pessoa.getEmail());
		conteudo.append("	\">clique aqui</a>,");
		conteudo.append("	ou cole o endereço abaixo em seu navegador.<br/>");
		conteudo.append("	http://virtual.servidor/autenticar/nova-senha.jsf?id=");
		conteudo.append(		pessoa.getId());
		conteudo.append("		&email=");
		conteudo.append(		pessoa.getEmail());
		conteudo.append("</h4>");
		
		conteudo.append("<p>");
		conteudo.append("	Caso não tenha solicitado alteração de sua senha apenas ignore esse email.");
		conteudo.append("</p>");
		
		conteudo.append("<br/><br/>");
		conteudo.append("<hr color=\"#072F49\" width=\"100%\" size=\"4\">");
		conteudo.append("<center>Este e-mail foi gerado automaticamente pelo sistema, por favor, Não responda!</center>");//
		conteudo.append("<br/><br/>");

		// conteudo.append("<div id='tudo' style='width:auto;'>		<div id='cabecalho'				style='border: 1px solid red; height: 200px; width: 100%;'>cabecalho</div>		<div id='corpo' style='border: 1px solid red; width: 100%; display:block;'>				<div class='produto' style='border: 1px solid red;height: 200px;width: 49.7%;float:left;'>produto</div>				<div class='produto' style='border: 1px solid red;height: 200px;width: 49.7%;float:left;'>produto</div>				<div class='produto' style='border: 1px solid red;height: 200px;width: 49.7%;float:left;'>produto</div>				<div class='produto' style='border: 1px solid red;height: 200px;width: 49.7%;float:left;'>produto</div>		</div></div>");
		// + "<head>"
		// + "<style>"
		// + ".logo {"
		// +
		// "		background: url('/resources/assets/img/logo_vs2.png') no-repeat scroll 0 0 rgba(0, 0, 0, 0);    "
		// + "		display: block;"
		// + "    	height: 85px;"
		// + "	    text-indent: -999px;"
		// + "	    width: 345px;"
		// + "}"
		// + "</style>"
		// + "</head>"
		// + "<body>"
		// +
		// "<img src='http://virtual.servidor/javax.faces.resource/logo_vs2.png.jsf?ln=assets/img' />"
		// + "		<a class='logo' href='virtual.servidor/index.jsf'>Logo</a>"
		// + "</body>" + "</html>");

		MailUtils
				.sendHtmlMail(conteudo.toString(), to,
						"[Virtual Store] Recuperação de senha de acesso. (Não responda)");
	}

	@Override @Asynchronous
	public void sendNewsletter(String news) {

		List<String> emailsToSend = this.pessoaService.getEmailListToNews();

		if (emailsToSend != null && !emailsToSend.isEmpty())
			for (String email : emailsToSend)
				MailUtils.sendHtmlMail(news, email,
						"[Virtual Store] Produtos com preços promocionais.");

	}

	@Override @Asynchronous
	public void sendVendaNotification(String email, String nomeCliente, String numeroPedido, String linkPagamento, StatusVendaEnum status) {

		String assunto = "Sua compra nº " + numeroPedido + " foi finalizada com sucesso.";
		StringBuilder conteudoEmail = new StringBuilder();
		
		conteudoEmail.append(this.getLogoEmail());
		
		conteudoEmail.append("<h3>");
		conteudoEmail.append("	Olá " + nomeCliente + ".");
		conteudoEmail.append("</h3>");
		
		conteudoEmail.append("<h4>");
		conteudoEmail.append(	assunto);
		conteudoEmail.append("	<br />Status da compra: " + status.getNome() + ".");
		conteudoEmail.append("</h4>");

		conteudoEmail.append("<h4>");
		conteudoEmail.append("	Para realizar o pagamento ");
		conteudoEmail.append("	<a href=\"" + linkPagamento + "\"");
		conteudoEmail.append("	\">clique aqui</a>,");
		conteudoEmail.append("</h4>");

		conteudoEmail.append("<h4>");
		conteudoEmail.append("	Para acompanhar o andamento da sua compra ");
		conteudoEmail.append("	<a href=\"http://virtual.servidor/area_usuario/index.jsf\"");
		conteudoEmail.append("	\">clique aqui</a>, e depois clique em 'Em andamento' na área 'Minhas compras'");
		conteudoEmail.append("</h4>");
	
		conteudoEmail.append("<br/><br/>");
		conteudoEmail.append("<hr color=\"#072F49\" width=\"100%\" size=\"4\">");
		conteudoEmail.append("<center>Este e-mail foi gerado automaticamente pelo sistema, por favor, Não responda!</center>");//
		
		
		if (email != null && !email.isEmpty())
			MailUtils.sendHtmlMail(conteudoEmail.toString(), email, "[Virtual Store] " + assunto);

	}
	
	
	@Override @Asynchronous
	public void sendVendaStatusAlterado(String email, String nomeCliente, String numeroPedido, StatusVendaEnum status) {

		String assunto = "Mudança de status na sua compra nº " + numeroPedido;
		StringBuilder conteudoEmail = new StringBuilder();
		
		conteudoEmail.append(this.getLogoEmail());
		
		conteudoEmail.append("<h3>");
		conteudoEmail.append("	Olá " + nomeCliente + ".");
		conteudoEmail.append("</h3>");
		
		conteudoEmail.append("<h4>");
		conteudoEmail.append(	"Houve uma mudança no status de sua compra nº " + numeroPedido +".");
		conteudoEmail.append("	<br />Novo status da compra: " + status.getNome() + ".");
		conteudoEmail.append("</h4>");

		conteudoEmail.append("<h4>");
		conteudoEmail.append("	Para acompanhar o andamento da sua compra ");
		conteudoEmail.append("	<a href=\"http://virtual.servidor/area_usuario/index.jsf\"");
		conteudoEmail.append("	\">clique aqui</a>, e depois clique em 'Em andamento' na área 'Minhas compras'");
		conteudoEmail.append("</h4>");
	
		
		conteudoEmail.append("<br/><br/>");
		conteudoEmail.append("<hr color=\"#072F49\" width=\"100%\" size=\"4\">");
		conteudoEmail.append("<center>Este e-mail foi gerado automaticamente pelo sistema, por favor, Não responda!</center>");//
		
		
		if (email != null && !email.isEmpty())
			MailUtils.sendHtmlMail(conteudoEmail.toString(), email, "[Virtual Store] " + assunto);

	}
	
	private String getLogoEmail(){
		
		String header = "" // "		<div id='tudo' style='width: 700px;'>"
				+ ""
				+ "			<div id='cabecalho' style='width: 100%;'>"
				+ ""
				+ ""
				+ "				<label class='apresentacao' style='color: #000033; display: block; font-size: 18px; font-weight: bold; margin-left: 75px; margin-top: 5px;'>"
				+ "				</label>"
				+ ""
				+ "				<a href='/index.jsf' class='logo'"
				+ "					style='display: inline-block; margin-top: 10px; text-decoration: none;'>"
				+ "					<img src='http://virtual.servidor/javax.faces.resource/logo_vs2.png.jsf?ln=assets/img'"
				+ "						style='width: 260px;' />"
				+ "				</a>"
				+ ""
				+ ""
				+ "			</div>";
		
		return header;
	}

}